import axios from "axios";
import router from '@/router'
import { Message } from 'element-ui';

const baseURL = '/api'
const instance = axios.create({
    baseURL,
    timeout: 6000,
});

// 添加请求拦截器
instance.interceptors.request.use(
    // 在发送请求之前做些什么
    (config) => {
        console.log(localStorage.getItem('token'))
        //携带token
        if (localStorage.getItem('token')) {
            config.headers.token = localStorage.getItem('token')
        }
        return config
    },
    (err) => {
        // 对请求错误做些什么
        Promise.reject(err);
    }
);

// 添加响应拦截器
instance.interceptors.response.use((res) => {
    //处理业务失败
    //摘取核心数据
    if (res.data.code == 1) {
        return res.data
    }
    Message({
        showClose: true,
        message: res.data.msg ? res.data.msg : '服务异常',
        type: 'error'
    });
    return Promise.reject(res.data)
},
    (err) => {
        //处理401错误
        //token过期，权限不够
        if (err.response && err.response.status == 401) {
            Message({
                showClose: true,
                message : '请先登录',
                type: 'error'
            })
            router.push('/login')
        } else {
            console.log(err)
            Message({
                showClose: true,
                message:'服务异常',
                type: 'error'
            });
        }
        //错误默认情况
        return Promise.reject(err)
    });

export default instance
export { baseURL }